using System;
using SheLife.Domain.Common;

namespace SheLife.Domain.Entities
{
    /// <summary>
    /// 成长习惯实体
    /// </summary>
    public class GrowthHabit : BaseEntity
    {
        public int UserId { get; set; }
        public string Title { get; set; } // 习惯标题
        public string Description { get; set; } // 描述
        public string Category { get; set; } // 分类：健康、生活、美丽、成长等
        public string Frequency { get; set; } // 频率：每日、每周、每月等
        public int TargetValue { get; set; } // 目标值
        public bool IsActive { get; set; } // 是否激活

        // 导航属性
        public virtual User User { get; set; }
        public virtual ICollection<GrowthHabitRecord> GrowthHabitRecords { get; set; }
    }

    /// <summary>
    /// 成长习惯记录实体
    /// </summary>
    public class GrowthHabitRecord : BaseEntity
    {
        public int HabitId { get; set; }
        public DateTime Date { get; set; } // 记录日期
        public int Value { get; set; } // 值
        public string Notes { get; set; } // 备注

        // 导航属性
        public virtual GrowthHabit GrowthHabit { get; set; }
    }

    /// <summary>
    /// 成长习惯模板实体
    /// </summary>
    public class GrowthHabitTemplate : BaseEntity
    {
        public string Title { get; set; } // 模板标题
        public string Description { get; set; } // 描述
        public string Category { get; set; } // 分类：健康、生活、美丽、成长等
        public string Frequency { get; set; } // 频率：每日、每周、每月等
        public int TargetValue { get; set; } // 目标值
        public string Tags { get; set; } // 标签
        public bool IsActive { get; set; } // 是否激活
        public int UsageCount { get; set; } // 使用次数
        public decimal Rating { get; set; } // 评分
        public int ReviewCount { get; set; } // 评价数
    }

    /// <summary>
    /// 成长习惯伙伴实体
    /// </summary>
    public class GrowthHabitPartner : BaseEntity
    {
        public Guid UserId { get; set; } // 用户ID
        public Guid PartnerId { get; set; } // 伙伴ID
        public Guid HabitId { get; set; } // 习惯ID
        public DateTime JoinedAt { get; set; } // 加入时间
        public bool IsActive { get; set; } // 是否激活

        // 导航属性
        public virtual User User { get; set; }
        public virtual User Partner { get; set; }
        public virtual GrowthHabit Habit { get; set; }
    }
}